#pragma once
#include "MercenaryPtr.hpp"
#include "UnitRendererFwd.hpp"
#include "ImportExport.hpp"

namespace he
{
	class TerrainTile;

	//! Human unit controller.
	class MercenaryController : boost::noncopyable
	{
		// Attributes
	private:
		//! Unit instance.
		MercenaryPtr_t m_pUnit;
		//! Unit entity.
		UnitRendererPtr_t m_pEntity;

		// Operations
	public:
		//! Set position.
		HE_ENGINE_API void position(TerrainTile *pTile);
		//! Move to tile.
		HE_ENGINE_API void move();
		//! Update.
		HE_ENGINE_API void update(float TimeDelta);

		// Construction/Destruction
	public:
		HE_ENGINE_API MercenaryController(MercenaryPtr_t const &pUnit, UnitRendererPtr_t const &pUnitEntity);
	};
} /*he*/
